#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
int d[maxn],v[maxn],a[maxn];
double p[maxn];
int vis[maxn];
int main(){
    freopen("detect.in","r",stdin);
    freopen("detect.out","w",stdout);
    ios::sync_with_stdio(0);
    int T;
    cin>>T;
    while(T--){
        int n,m,L,V;
        cin>>n>>m>>L>>V;
        for(int i=1;i<=n;i++){
            cin>>d[i]>>v[i]>>a[i];
        }
        for(int i=1;i<=m;i++){
            cin>>p[i];
        }
        int cnt=0,ans=0;
        for(int i=1;i<=n;i++){
            if(a[i]==0){
                if(v[i]>V){
                    bool flag=false;
                    for(int j=1;j<=m;j++){
                        if(p[j]>=d[i]){
                            vis[j]++;
                            flag=true;
                        }
                    }
                    if(flag)cnt++;
                }
            }
            else {
                double fz=V*V-v[i]*v[i];
                double fm=2*a[i];
                double s=fz/fm;
                if(a[i]>0){
                    bool flag1=false;
                    for(int j=1;j<=m;j++){
                        if(p[j]>s+d[i]){
                            vis[j]++;
                            flag1=true;
                        }
                    }
                    if(flag1)cnt++;
                }
                else {
                    double x=-v[i]*v[i];
                    double y=2*a[i];
                    double z=x/y;
                    bool flag2=false;
                    for(int j=1;j<=m;j++){
                        if(p[j]>=d[i]&&p[j]<min(s+d[i],z+d[i])){
                            vis[j]++;
                            flag2=true;
                        }
                    }
                    if(flag2)cnt++;
                }
            }

        }
        for(int j=2;j<=m;j++){
            if(vis[j]>=vis[j-1])ans++;
        }
        cout<<cnt<<" "<<ans<<endl;
        for(int i=1;i<=n;i++){
            v[i]=0,d[i]=0,a[i]=0;
        }
        for(int i=1;i<=m;i++){
            p[i]=0;
        }
    }
    return 0;
}
